package com.hrbxlh.dao;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

/**
* -------------------------------------------------------
* Copyright (c) 2017, 鑫联华信息科技股份有限公司
* All rights reserved.
* FileName：DepDao.java
* Description：部门DepDao类,负责操作部门数据数据。
* History：
* Date           Author               Desc
* 2017.1.6		  xzx                 建立
* -------------------------------------------------------
*/

@Repository
public interface DepDao {

	/**
	 * @description 获取全部部门信息
	 * @param Map<String, Object> 参数与数据库column一致。
	 * @return List<Map<String,String>> 部门集合
	 * @throws Exception
	 */
	public List<Map<String,Object>> getDepList(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 添加部门的方法，需要部门名称，父部门id，参数key与数据库column对应即可。 
	 * @param Map<String,Object> paramMap
	 * @return 
	 * @throws Exception
	 */
	public void addDep(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 修改部门的方法，需要部门名称，部门id，父部门id，参数key与数据库column对应即可。 
	 * @param Map<String,Object> paramMap
	 * @return boolean (true 成功 ,false失败)
	 * @throws Exception
	 */
	public void saveDep(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 删除部门的方法，传的是每个部门的id。 
	 * @param List<Integer> paramList 部门id集合
	 * @return 
	 * @throws Exception
	 */
	public void delDep(List<Integer> paramList) throws Exception;
	
	/**
	 * @description 查询该部门的子部门
	 * @param int  部门id
	 * @return List<Map<String, Object>> 子部门集合
	 * @throws Exception
	 */
	public List<Map<String, Object>> getChildDep(int depId) throws Exception;
	
	/**
	 * @description 查询该部门下的人员
	 * @param int 部门id
	 * @return List<Map<String, Object>> 人员信息列表
	 * @throws Exception
	 */
	public List<Map<String, Object>> getChildUser(int depId) throws Exception;
	
	/**
	 * @description 通过部门名字查询是否存在这个名字的部门信息
	 * @param 部门名称 或部门名称加部门id
	 * @return List<Map<String, Object>> 部门列表
	 * @throws Exception
	 */
	public List<Map<String, Object>> getDepByName(Map<String, Object> paramMap) throws Exception;
	
	
}
